#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "GameModel.h"

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected:
    // 绘制棋盘，棋子，悬停点，还有游戏结束时输赢/和棋状态的显示
    void paintEvent(QPaintEvent *event);
    // 监听鼠标移动情况，显示悬停点，方便落子
    void mouseMoveEvent(QMouseEvent *event);
    // 实际落子
    void mouseReleaseEvent(QMouseEvent *event);

private:
    GameModel *game; // 游戏指针， 声明了一个指向 GameModel 类型的指针变量 game
    GameType game_type; // 存储游戏类型
    int clickRow, clickCol; // 存储将点击的位置
    void initGame();
    void checkGame(int x, int y);

private slots:
    void chessOneByPerson(); // 人执行
    void chessOneByAI(); // AI下棋

    void initPVPGame();//player VS player
    void initPVEGame();//player VS environment
};

#endif // MAINWINDOW_H
